home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / programming / e / powerd0.06 / modules / intuition / classes.m < prev    next >
Text File  |  1999-11-30  |  767b  |  39 lines

  1. MODULE    'exec/libraries',
  2.             'exec/nodes',
  3.             'intuition/classusr',
  4.             'utility/hooks'
  5.  
  6. OBJECT IClass
  7.     Dispatcher:Hook,
  8.     Reserved:LONG,
  9.     Super:PTR TO IClass,
  10.     ID:LONG,
  11.     InstOffset:UWORD,
  12.     InstSize:UWORD,
  13.     UserData:LONG,
  14.     SubClassCount:LONG,
  15.     ObjectCount:LONG,
  16.     Flags:LONG
  17.  
  18. CONST    CLB_INLIST=0,
  19.         CLF_INLIST=1
  20.  
  21. #define INST_DATA(cl,o) ((o)+(cl::IClass.InstOffset AND $FFFF))
  22. #define SIZEOF_INSTANCE(cl) ((cl::IClass.InstOffset AND $FFFF)+(cl::IClass.InstSize AND $FFFF)+SIZEOF__Object)
  23.  
  24. CONST    OJ_CLASS=8
  25.  
  26. OBJECT _Object
  27.     Node:MLN,
  28.     Class:PTR TO IClass
  29.  
  30. #define _OBJ(o) (o)
  31. #define BASEOBJECT(_obj) ((_obj)+SIZEOF__Object)
  32. #define _OBJECT(o) ((o)-SIZEOF__Object)
  33. #define OCLASS(o) (Long(_OBJECT(o)+OJ_CLASS))
  34.  
  35. OBJECT ClassLibrary
  36.     Lib:Lib,
  37.     Pad:INT,
  38.     Class:PTR TO IClass
  39.